A programmable logic device is a digital integrated circuit capable of being programmed after its manufacture to provide a variety of different logic functions. Examples include a programmable logic device (PLD) and a field programmable gate array (FPGA). A PLD generally includes ‘AND’ gates, ‘OR’ gates, and Input/Output buffers, and functions differently depending on how it is programmed. An FPGA includes a gate array of logic elements (or macrocells), either gates or lookup table RAMs, flip-flops and programmable interconnect wiring. Typical FPGAs are reprogrammable since their logic functions and interconnects are defined by RAM cells. While a typical PLD may contain hundreds of gates, an FPGA may contain tens of thousands of logic elements.
Programming a PLD or FPGA is achieved using on-chip fuses, EPROM (UV erasable programmable read-only memory) circuits, EEPROM (electrically erasable programmable read-only memory) circuits, and RAM (random access memory) circuits which programmably create data paths and logic functions within the device that are specific to a user's design.
State of the Art PLDs make use of one or more non-volatile memory cell arrays (e.g. EPROM, EEPROM, Flash EPROM, or Flash EEPROM) so that they can retain their configuration memory during power-down. Typically, these arrays are erasable, thereby allowing the desired functionality of the PLD to be re-programmed many times. This programmability makes a PLD family a flexible and powerful tool for a large number of unique applications where a common PLD is employed and only the chip's internal programming is varied.
Programmable logic devices are common in many electronic devices such as cellular phones, personal digital assistants, network switching equipment, etc. Although the PLDs are easily configured, it is difficult to diagnose and reconfigure them once they are embedded in the electronic device and in a user's possession. To perform a diagnostic test involves transporting the device to a repair center or having a technician make an on-site test. This is time consuming for the user and potentially expensive.
Electronic devices typically operate with a software system. When problems occur in the software, it has been difficult to identify problems and diagnose them. With prior devices, the device needed to be physically taken to a service center or diagnosed on-site by a skilled technician.
The present invention provides a new and unique system and method for diagnosing and reconfiguring software that cures the above-referenced problems and others.